import defaultSettings from '@/settings';
import { useDynamicTitle } from '@/utils/dynamicTitle';

const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings;

const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || '';

const useSettingsStore = defineStore(
	'settings',
	{
		state: () => ({
			title: '',
			theme: storageSetting.theme || '#409EFF',
			sideTheme: storageSetting.sideTheme || sideTheme,
			showSettings: showSettings,
			topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
			tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
			fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
			sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
			dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle
		}),
		actions: {
			// 修改布局设置
			changeSetting(data) {
				const { key, value } = data;
				this[key] = value;
			},
			// 设置网页标题
			setTitle(title) {
				this.title = title;
				useDynamicTitle();
			}
		}
	});

export default useSettingsStore;
